package la.iok.hzsvn.lewin.movie.service;

import la.iok.hzsvn.lewin.movie.entity.ClueCardGroup;
import la.iok.hzsvn.lewin.movie.entity.ClueCardGroupInstance;
import la.iok.hzsvn.lewin.movie.model.ClueCardGroupVo;
import la.iok.hzsvn.lewin.mybatis.service.BaseService;
import la.iok.hzsvn.share.annotations.NotNull;
import la.iok.hzsvn.share.annotations.NotNullElement;
import la.iok.hzsvn.share.annotations.NullElement;
import la.iok.hzsvn.share.annotations.Nullable;

import java.util.Collection;
import java.util.List;

public interface ClueCardGroupInstanceService extends BaseService<ClueCardGroupInstance, Long> {
    @NotNull
    Long save(@NotNull ClueCardGroup group, @NotNull Long movieInstanceId);

    /**
     * 查询剧本实例的所有线索分组
     * @param movieInstanceId 剧本实例id
     * @return 线索分组列表
     */
    @NotNull
    @NotNullElement
    List<ClueCardGroupVo> clueCardGroups(@Nullable Long movieInstanceId);

    /**
     * 标记剧本文件已经删除
     * @param ids id集合
     */
    void markFileDeleted(@Nullable @NullElement Collection<Long> ids);
}
